--- title: "L2-005 集合相似度" created: 2025-11-28 tags: - 算法 --- # L2-005 集合相似度 ## 题目 [L2-005 集合相似度](https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=994805070149828608&page=1) ![[image-0a2a3eae.png]] ## 思路分析 ![[image-7962c11c.png]] ## 代码实现 ```cpp #include using namespace std; #define endl '\n' using ll = long long; using ull = unsigned long long; using PII = pair; using Pll = pair; int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1}; const int inf = 0x3f3f3f3f; int main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); int n;cin>>n; vector> sets(n+1); for(int i=1;i<=n;i++){ int m,num; cin>>m; while(m--){ cin>>num; sets[i].insert(num); } } int k,a,b;cin>>k; while(k--){ cin>>a>>b; auto A=sets[a]; auto B=sets[b]; int nc=0; for(auto x:A) nc+=B.count(x); int nt = A.size() + B.size() - nc; printf("%.2f%%\n",nc*100.0/nt); } return 0; } ``` ## 同类题型 ## 视频讲解 --- ⬅️ [[L2-004 这是二叉搜索树吗?|L2-004 这是二叉搜索树吗?]] 🏠 [[00-天梯赛]] ➡️ [[L2-006 树的遍历|L2-006 树的遍历]]